home *** CD-ROM | disk | FTP | other *** search
- ##############################################################################
- # Guestbook Version 2.3.1 #
- # Copyright 1996 Matt Wright mattw@worldwidemart.com #
- # Created 4/21/95 Last Modified 10/29/95 #
- # Scripts Archive at: http://www.worldwidemart.com/scripts/ #
- ##############################################################################
- # If you run into any problems while trying to configure this scripts, help #
- # is available. The steps you should take to get the fastest results, are: #
- # 1) Read this file thoroughly #
- # 2) Consult the Matt's Script Archive Frequently Asked Questions: #
- # http://www.worldwidemart.com/scripts/faq/ #
- # 3) If you are still having difficulty installing this script, send #
- # e-mail to: scripts-help@tahoenet.com #
- # Include any error messages you are receiving and as much detail #
- # as you can so we can spot your problem. Also include the variable#
- # configuration block that is located at the top of the script. #
- # #
- # Hopefully we will be able to help you solve your problems. Thank you. #
- ##############################################################################
- # COPYRIGHT NOTICE #
- # Copyright 1996 Matthew M. Wright All Rights Reserved. #
- # #
- # Guestbook may be used and modified free of charge by anyone so long as #
- # this copyright notice and the comments above remain intact. By using this #
- # code you agree to indemnify Matthew M. Wright from any liability that #
- # might arise from it's use. #
- # #
- # Selling the code for this program without prior written consent is #
- # expressly forbidden. In other words, please ask first before you try and #
- # make money off of my program. #
- # #
- # Obtain permission before redistributing this software over the Internet or #
- # in any other medium. In all cases copyright and header must remain intact.#
- ##############################################################################
-
- There are five files included in the Guestbook package. Below is a brief
- summary of them:
- 1) README - This file.
- 2) guestbook.pl - The Perl Script.
- 3) guestbook.html - The actual guestbook file.
- 4) addguest.html - The fill-out form for a guestbook entry.
- 5) guestlog.html - A short log of those who have added.
-
- Below is a more detailed explanation of each file and what to do with it!
- ____________________
-
- GUESTBOOK.PL - This is the Perl script that actually writes new entries to
- files and returns the entry to the user. This file will need to be placed
- in the cgi-bin of your server and chmoded to a+rx. There are a few things
- that need to be changed in this file:
- # Set Variables
- $guestbookurl - The url address of your guestbook.html file
- $guestbookreal - The system location of your guestbook.html file
- $guestlog - The system location of your guestlog.html file
- $cgiurl - The url portion of the address to the guestbook.pl file
- The file guestbook.pl needs to be placed in your server's cgi-bin and
- chmoded read/execute for users of your httpd. (chmod a+rx)
-
- NEW IN 2.1:
- There are now several options that you have to decide whether
- or not to use. Below is a brief description of what each one does.
- While choosing what options you want to have on keep in mind that a '1'
- will turn them on and a '0' will turn them off.
- Option 1: $mail - This option will allow you to be notified via
- an E-Mail address when a new entry arrives in your guestbook.
- The entry will be mailed to you as a notification. If you should
- choose to turn this variable on you will need to fill in the 2
- variables that go along with it:
- $recipient - Your E-Mail address, so that the mailing
- program will know who to mail the entry to.
- $mailprog - The location of your sendmail program on your
- host machine.
- Option 2: $uselog - This will allow you the ability to use my
- short log feature. It is already turned on so you will have to
- change it to 0 if you do not wish to use it. I have implemented
- this feature, since there are probably many people who feel no need
- to have a log when people are making entries to a file anyway.
- Keep in mind it will show errors which is one nice aspect about it.
- Option 3: $linkmail - Turning this option on will make the
- address links in your guestbook become hyperlinked. So instead of
- simply having (name@some.host) it will put
- (<a href="mailto:name@some.host">name@some.host</a>) so that anyone
- can simply click on the address to email them.
- Option 4: $separator - While looking at many other guestbooks
- I noticed that many people prefer to separate entries with
- a Horizontal Rule <hr> instead of a Paragraph Separator <p>, which
- I used in my old scripts. I have now given you the option to
- choose. By changing the 0 in the script to a 1 you will turn on
- the <hr> separator and turn off the <p> separator. The 0 option
- will do the reverse of that; turn on <p> and turn off <hr>.
- Option 5: $redirection - Although Netscape and other browsers handle
- the auto-redirection that I have implemented quite nicely, I have
- noticed that it does not work with lynx (a text based browser).
- I have given you the option of using auto-redirection or not.
- Lynx can still add to your guestbook with it, they will just get an
- error message when they do. This may not be true for all systems
- though. It seemed that when we upgraded to httpd 1.4 this problem
- started occurring. By choosing 1 you will enable auto redirection
- and 0 will return a page to the user telling them their entry has
- been received and click here to get back to the guestbook.
-
- NEW IN 2.2:
- There are a couple new options in version 2.2, which you will
- need to configure, or leave as default.
-
- Option 6: $entry_order - When this script was first written, entries
- were always added next to the top, so you and other users did not
- have to always see the same guestbook entry when they visited your
- pages. The rest of the enties scrolled beneath the newest, from
- newest to oldest. I have had requests that I make an option
- available so that people can have a guestbook which would read
- from oldest to newest. This is how you would go about doing that.
- Set this option to '0' and the newest entries will be added below
- the rest of the entries. Keep this option at '1' and the guestbook
- will act like previous versions, adding the newest entry to the top.
- Option 7: $remote_mail - Many users of the guestbook have requested
- that a form letter be automatically sent to the remote user when
- they fill in the guestbook. Turning this option on will tell the
- script to automatically mail any user who leaves an email address.
- You can specify the contents of the mail mesage by editing the
- section of the script that sends mail to the remote user. By
- default it sends a message that says, "Thank you for adding to my
- guestbook." and then shows them their entry. If you should
- choose to turn this variable on you will need to fill in the 2
- variables that go along with it:
- $recipient - Your E-Mail address, so that the mailing
- program will know who to mail the entry to.
- $mailprog - The location of your sendmail program on your
- host machine.
-
- NEW IN 2.3!
- There is one new configurable option in version 2.3 of the
- guestbook.
-
- Option 8: $allow_html = "";
- This option allows you to turn on or off the use of HTML tags by
- users of your guestbook. Setting this variable to '1' allows
- users to imbed html tags such as <b> or <H1> or <a href=""></a>
- into your html document. Setting this variable to '0' will not
- allow them to use any html syntax in their comments or any other
- field. You can still link to their email address by turning
- $link_mail to '1'.
-
- Also new in version 2.3 is the ability for users to add their own url
- and then their name is referenced to their URL in the guestbook.html
- file. This helps to eliminate the need for allow_html to be turned
- on, and lets users point you to a spot that will tell you more about
- them. Several users of the guestbook script have asked for this
- option. If you wish to disable the option, simply delete the
- following line from your addguest.html file:
-
- URL: <input type=text name=url size=50><br>
-
-
- NEW IN 2.3.1!
-
- Option 9: $line_breaks - This option allows you to decide whether
- or not you want line breaks in the comment field to be turned into
- <br>'s in the html thing to retain the look of the guestbook entry.
- Common setting would be off, because sometimes people accidentally
- put in extra line breaks.
-
- ____________________
-
-
- GUESTBOOK.HTML - This is the file that you will link to that will contain the
- Guestbook Entries. You will need to have this set at write/read permission
- for the users (chmod a+rw). You will probably need to edit the url for the
- link to the addguest.html file and edit the url at the end of this page to
- point back to your home page. You will also want to edit the title and
- heading spaces. Do not delete the line <!--begin--> from this
- guestbook, or else the script will have no way of knowing where to begin the
- editing. The <!--begin--> line is the only necessary line in your
- guestbook.html file, but the link to the addguest.html file is also a good
- idea. :)
- ____________________
-
- ADDGUEST.HTML - This is a fill-out form to add a new entry into the
- guestbook. You will need to edit parts of it to correct urls and
- names of things, but leave the basic field names in place in the form. You
- will also need to change the action of the form to point to the guestbook.pl
- file you placed in your cgi-bin. The action of the form should be the same
- as the $cgiurl variable you configured in your guestbook.pl file.
- ____________________
-
- GUESTLOG.HTML - This is a short log that lists domains and times that entries
- were created. Much easier to browse and it will point out those failed entries
- when users did not specify a name or comments. This file will also need
- read/write permission given to it. To avoid long scripting (call me lazy if
- you want :-) ) I left the log file so that newest entries are added at the
- bottom. This should be apparent though since the entries all come with a
- short date added. You can get around using this by changing the option
- $uselog in the guestbook.pl file.
- ____________________
-
- Bug Fixes in Version 2.1:
- 1) I changed the guestbook script so that the subroutines now work.
- I guess I really messed up in Version 2.0, since I didn't test it
- well, so I tried to be extra careful this time.
- 2) In the subroutines I added a complete new form so that people
- who forget to put their name in can simply fill it in, while the
- script retains the rest of the information and it will them be
- added. This means that they don't have to first return to the
- guestbook add form to fill out the entry all over again.
-
- Bug Fixes in Version 2.2:
- 1) I seemed to have a huge parenthesis problem in version 2.1. I
- messed up twice in the mail option and also in the guestbook
- printing, when the ')' was put inside the <a href> mailto tag,
- instead of outside like the first one. The mail option was
- missing two parenthesis which caused it not to work on many
- machines. These have both been fixed.
- 2) <>'s were used instead of () in the guestbook email addresses.
-
- Bud fixes in Version 2.3:
- 1) Fixed Server Side Includes Security whole in script.
-
- -------------------------------------------------------------------------------
-
- Distribute this freely, but please leave my name and address somewhere in it.
- Not necessarily in the Guestbook, but somewhere in the script. I cannot
- guarantee the safety or integrity of this package, I only did my best. It is
- being used many places and people seem to like it.
-
- I would love to see improvements on this and if you happen to have an idea or
- make the changes, please let me know or send me a copy. If you have any
- comments or suggestions you can reach me at the email address at the top of
- this document. I would appreciate any feedback or info you have for me.
- Thanks.
-
- One thing that I do ask is that you let me know the url of where this is being
- used. I won't be mad if I don't, but it is nice to see my work on the WWW.
- Also by letting me know this and your email address I guess this is all I need
- to know to consider you registered and then I will be able to let you know of
- updates to the scripts, etc...
-
- -------------------------------------------------------------------------------
-
- History List:
- Version 1.1 5/13 - chop($shortdate); added to make log file more
- readable...
- Version 2.0 5/26 - Several lines of code added and modified so that
- entries now appear most recent entry first.
- - Many lines taken out so that the script automatically
- returns you to the guestbook after you have completed
- the add form.
- Version 2.1 5/29 - Edited subroutines so that they now work. Added fill
- out form to the subroutines to make less jumps to fill
- out guestbook.
- 6/1 - Added the option of mailing the owner of the guestbook
- when a new entry arrives.
- 6/5 - Added the option to hypertext the email address of the
- guest and you can now choose whether to log the entry
- or not.
- 6/7 - chop($date); added and the guestbook entry modified.
- Version 2.2 8/23 - Tiny Modifications:
- - Parenthesis for email address in entry
- changed to brackets, so that the email address
- can more easily be cut and pasted into most
- email programs.
- - Other minor changes
- 8/24 - Logging now a subroutine.
- - Code tabbed better to make more readable. This was
- one of my worst scripts up until now in that respect.
- - Option to have newest entries displayed at the bottom
- instead of at the top added.
- - E-mail option now fixed so the names come through
- with the email messages.
- - Modified the subroutines, so when an error message is
- submitted, people don't see just a 2 letter field for
- the State. I guess I was just ignorant before, not
- realizing this would be around the world, where not
- everyone uses 2 digits for their state. :)
- Version 2.21 10/8 - Fixed a problem with logging entry, which caused the
- log to be on one line when viewed with a WWW browser.
- Version 2.3 10/14 - Added option of allowing html tags or throwing them
- out when an entry was added.
- - Fixed a hole in the script, which, when html is
- turned on, like it always used to be, people could
- add random server side includes to your html pages.
- Not cool. Thanks to:
- Rick O'Donnell (odonnell@heron.tc.clarkson.edu)
- for pointing out the flaw and providing a fix.
- - Added an optional URL field in the add an entry form
- and modified the script to place the reference
- around the submitter's name.
- Version 2.3.1 10/29 - Took out all references to $server, which were
- accidentally left in version 2.3.
- - Added an option to let you change line breaks in
- comment field to <br>'s in html doc.
- - Added several die routines so maybe I won't get
- as many mail messages as to "Why doesn't this work!"
- ______________________________________________________________________________
- Matt Wright - mattw@worldwidemart.com - http://www.worldwidemart.com/scripts/
-